"""
文本嵌入模型
LangChain 中的基础 Embeddings 类提供了两个方法：一个用于嵌入文档，一个用于嵌入查询。前者，.embed_documents，接受多个文本作为输入，而后者，.embed_query，接受单个文本。
将这两个方法分开是因为某些嵌入大模型供应商对文档（待搜索的内容）和查询（搜索查询本身）有不同的嵌入方法。
.embed_query 将返回一个浮点数列表，而 .embed_documents 返回一个浮点数列表的列表。
"""
from models import get_ollama_embeddings_client

embeddings_client = get_ollama_embeddings_client()

# 嵌入文本列表
embeddings = embeddings_client.embed_documents(
    [
        "Hi there!",
        "Oh, hello!",
        "What's your name?",
        "My friends call me World",
        "Hello World!"
    ]
)
print(len(embeddings))
print(len(embeddings[0]))

# 嵌入单个查询
embedded_query = embeddings_client.embed_query("What was the name mentioned in the conversation?")
print(embedded_query[:5])